﻿using System;

namespace dbapi_lib.API.Persistence.SQL
{
    /// <summary>
    /// Class containing all the SQL keywords and other literals
    /// </summary>
    class SQLConstants
    {
        /** The default SQL date format. */
	    public static String FORMATTER_DATE = "yyyy-MM-dd HH:mm:ss";

	    /** The default SQL string date format. */
	    public static String FORMATTER_STRING_DATE = "yyyyMMdd";

        public static String KEYWORD_CREATE = "CREATE";

	    /** The SQL keyword <code>select</code>. */
	    public static  String KEYWORD_SELECT = "SELECT";

	    /** The SQL keyword <code>insert</code>. */
	    public static  String KEYWORD_INSERT = "INSERT";

	    /** The SQL keyword <code>update</code>. */
	    public static  String KEYWORD_UPDATE = "UPDATE";

	    /** The SQL keyword <code>delete</code>. */
	    public static  String KEYWORD_DELETE = "DELETE";

	    /** The SQL keyword <code>distinct</code>. */
	    public static  String KEYWORD_DISTINCT = "DISTINCT";

	    /** The SQL keyword <code>from</code>. */
	    public static  String KEYWORD_FROM = "FROM";

	    /** The SQL keyword <code>from</code>. */
	    public static  String KEYWORD_NOLOCK = "WITH(NOLOCK)";
	
	    /** The SQL keyword <code>into</code>. */
	    public static  String KEYWORD_INTO = "INTO";

	    /** The SQL keyword <code>values</code>. */
	    public static  String KEYWORD_VALUES = "VALUES";

	    /** The SQL keyword <code>join</code>. */
	    public static  String KEYWORD_JOIN = "JOIN";

	    /** The SQL keyword <code>inner</code>. */
	    public static  String KEYWORD_INNER = "INNER";

	    /** The SQL keyword <code>outer</code>. */
	    public static  String KEYWORD_OUTER = "OUTER";

	    /** The SQL keyword <code>left</code>. */
	    public static  String KEYWORD_LEFT = "LEFT";

	    /** The SQL keyword <code>right</code>. */
	    public static  String KEYWORD_RIGHT = "RIGHT";

	    /** The SQL keyword <code>union</code>. */
	    public static  String KEYWORD_UNION = "UNION";

	    /** The SQL keyword <code>where</code>. */
	    public static  String KEYWORD_WHERE = "WHERE";

	    /** The SQL keyword <code>order by</code>. */
	    public static  String KEYWORD_ORDER_BY = "ORDER BY";

	    /** The SQL keyword <code>set</code>. */
	    public static  String KEYWORD_SET = "SET";

	    /** The SQL keyword <code>is</code>. */
	    public static  String KEYWORD_IS = "IS";

	    /** The SQL keyword <code>not</code>. */
	    public static  String KEYWORD_NOT = "NOT";

	    /** The SQL keyword <code>in</code>. */
	    public static  String KEYWORD_IN = "IN";

	    /** The SQL keyword <code>and</code>. */
	    public static  String KEYWORD_AND = "AND";

	    /** The SQL keyword <code>or</code>. */
	    public static  String KEYWORD_OR = "OR";

        public static String KEYWORD_PK = "PRIMARY KEY";

        public static String KEYWORD_TABLE = "TABLE";

	    /** The SQL keyword for <code>descending</code> data order. */
	    public static  String ORDER_DESCENDING = "DESC";

	    /** The SQL keyword for <code>ascending</code> data order. */
	    public static  String ORDER_ASCENDING = "ASC";

	    /** The SQL <code>NULL</code> field value. */
	    public static  String FIELD_VALUE_NULL = "NULL";

	    /** The <code>true</code> value for string boolean fields. */
	    public static  String FIELD_VALUE_BOOLEAN_YES = "Y";

	    /** The <code>false</code> value for string boolean fields. */
	    public static  String FIELD_VALUE_BOOLEAN_NO = "N";

	    /** The <code>true</code> value for boolean (bit) fields. */
	    public static  String FIELD_VALUE_BOOLEAN_TRUE = "1";

	    /** The <code>false</code> value for boolean (bit) fields. */
	    public static  String FIELD_VALUE_BOOLEAN_FALSE = "0";

	    /** The table qualifier - separator for table alias and field name. */
	    public static  String SYMBOL_TABLE_QUALIFIER = ".";

	    /** The symbol representing all fields in the table ('*'). */
	    public static  String SYMBOL_ALL_FIELDS = "*";

	    /** The single quote symbol. */
	    public static  String SYMBOL_QUOTE = "'";

	    /** The open parentheses symbol. */
	    public static  String SYMBOL_OPEN_PARENTHESES = "(";

	    /** The close parentheses symbol. */
	    public static  String SYMBOL_CLOSE_PARENTHESES = ")";

	    /** The equals sign. */
	    public static  String SYMBOL_EQUALS = "=";

	    /** The not equals sign. */
	    public static  String SYMBOL_NOT_EQUALS = "<>";

	    /** The string literal for separating the fields from each other (comma with a space). */
	    public static  String SYMBOL_SEPARATOR_FIELD = ",";

	    /** The space character. */
	    public static  String SYMBOL_SPACE = " ";

        public static String TYPE_VARCHAR = "VARCHAR";

        public static String TYPE_INTEGER = "INTEGER";
    }
}
